package com.fjh.springboot_01.service;

import com.fjh.springboot_01.pojo.lesson.Lesson;
import com.fjh.springboot_01.pojo.lesson.PageBean;

public interface LessonService {
    /**
     * 新增课程
     * @param lesson 课程对象
     */
    void add(Lesson lesson);

    /**
     * 条件分页查询课程列表，支持模糊查询
     * @param pageNum 当前页码
     * @param pageSize 每页条数
     * @param categoryId 课程分类ID
     * @param keyword 关键字（标题或内容）
     * @param userId 用户ID，如果为null则查询所有已发布课程
     * @return 分页数据
     */
    PageBean<Lesson> list(Integer pageNum, Integer pageSize, Integer categoryId, String keyword, Integer userId);

    /**
     * 根据ID删除课程
     * @param id 课程ID
     */
    void deleteById(Integer id);

    /**
     * 更新课程信息
     * @param lesson 课程对象
     */
    void update(Lesson lesson);

    /**
     * 根据ID获取课程
     * @param id 课程ID
     * @return 课程对象，如果不存在返回null
     */
    Lesson getLessonById(Integer id);
}
